#pragma once


#include <cstdint>
#include <memory>
#include <time.h>
#include "user.hpp"
#include "datetime.hpp"

class Message {
public:
	Message(const User* sender, const User* receiver, DateTime datetime, std::shared_ptr<char*> content) :
		sender(sender), receiver(receiver), datetime(datetime), content(content) {}
	~Message() = default;

	const User* getSender() const { return sender; }
	const User* getReceiver() const { return receiver; }
	DateTime getDatetime() const { return datetime; }
	std::shared_ptr<char*> getContent() const { return content; }

private:
	const User* sender;
	const User* receiver;
	DateTime datetime;
	std::shared_ptr<char*> content;
};